package com.example.arcapplication.base;

import android.util.Log;

import androidx.fragment.app.Fragment;

/**
 * https://github.com/AndyJennifer/AndroidxLazyLoad
 * 修改你的 ViewPager 适配器
 * 1、在你的 ViewPager 适配器中增加如下参数：
 * FragmentPagerAdapter(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
 * FragmentStatePagerAdapter(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
 * 2、修改你的 add+show+hide 方法
 * 将需要显示的 Fragment ，在调用 add 或 show 方法后，setMaxLifecycle(showFragment, Lifecycle.State.RESUMED)
 * 将需要隐藏的 Fragment ，在调用 hide 方法后，setMaxLifecycle(fragment, Lifecycle.State.STARTED)
 */
public abstract class LazyFragment extends Fragment {

    private static final String TAG = "LazyFragment";
    private boolean isLoaded = false;

    @Override
    public void onResume() {
        super.onResume();
        //增加了Fragment是否可见的判断
        if (!isHidden()) {
            if (!isLoaded) {
                lazyInit();
                Log.d(TAG, "lazyInit----" + getClass().getSimpleName());
                isLoaded = true;
            } else {
                visible();
            }
        }
    }

    abstract void lazyInit();

    abstract void visible();


    @Override
    public void onDestroyView() {
        super.onDestroyView();
        isLoaded = false;
    }

}
